/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package spaceinvaders.sistema;

import spaceinvaders.interfacegrafica.JanelaPrincipal;

/**
 * Classe para gestacao dos comandos.
 * @author Danilo Augusto Silva
 */
public class Comandos {

    private static boolean leftKey = false; // Nao será usado por enquanto, na proxima entrega pretendo usar
    private static boolean rightKey = false; // Nao será usado por enquanto, na proxima entrega pretendo usar
    private static boolean upKey = false;
    private static boolean downKey = false;
    private static boolean fireKey = false;
    private static boolean enterKey = false;
    private static boolean pauseSound = true;

    /**
     * Construtor, apenas inicia o KeyListener.
     * @param janela = janela principal, aonde os eventos sao recebidos.
     */

    public Comandos(JanelaPrincipal janela) {
        janela.addKeyListener(janela);
    }

    //Key Listener:


    // Metodos is e set para teclas precionadas:

    /**
     * Verifica se seta para baixo está precionada
     * @return verdadeiro caso afirmativo, falso caso negativo.
     */

    public static boolean isDownKey() {
        return downKey;
    }

    /**
     * Modifica o estado da seta para baixo.
     * @param downKey = verdadeiro caso estiver apertada, falso caso estiver
     * solta
     */

    public static void setDownKey(boolean downKey) {
        Comandos.downKey = downKey;
    }

    /**
     * Verifica se a tecla de tiro está precionada.
     * @return verdadeiro caso afirmativo, falso caso negativo.
     */

    public static boolean isFireKey() {
        return fireKey;
    }

    /**
     * Modifica o estado da tecla de tiro.
     * @param fireKey = verdadeiro caso estiver apertada, falso caso estiver
     * solta
     */

    public  static void setFireKey(boolean fireKey) {
        Comandos.fireKey = fireKey;
    }

    /**
     * Verifica se seta para esquerda está precionada
     * @return verdadeiro caso afirmativo, falso caso negativo.
     */

    public static boolean isLeftKey() {
        return leftKey;
    }

    /**
     * Modifica o estado da seta para esquerda.
     * @param leftKey = verdadeiro caso estiver apertada, falso caso estiver
     * solta
     */

    public static void setLeftKey(boolean leftKey) {
        Comandos.leftKey = leftKey;
    }

    /**
     * Verifica se seta para direita está precionada
     * @return verdadeiro caso afirmativo, falso caso negativo.
     */

    public static boolean isRightKey() {
        return rightKey;
    }

    /**
     * Modifica o estado da seta para direita.
     * @param rightKey = verdadeiro caso estiver apertada, falso caso estiver
     * solta
     */

    public static void setRightKey(boolean rightKey) {
        Comandos.rightKey = rightKey;
    }

    /**
     * Verifica se seta para cima está precionada
     * @return verdadeiro caso afirmativo, falso caso negativo.
     */

    public static boolean isUpKey() {
        return upKey;
    }

    /**
     * Modifica o estado da seta para cima.
     * @param upKey = verdadeiro caso estiver apertada, falso caso estiver
     * solta
     */

    public static void setUpKey(boolean upKey) {
        Comandos.upKey = upKey;
    }

    /**
     * Verifica se a tecla pause está precionada
     * @return verdadeiro caso afirmativo, falso caso negativo.
     */

    public static boolean isPaused() {
        return enterKey;
    }

    /**
     * Modifica o estado da tecla pause.
     * @param enterKey = verdadeiro caso estiver apertada, falso caso estiver
     * solta
     */

    public static void setPause(boolean enterKey) {
        Comandos.enterKey = enterKey;
    }
    
    /**
     * Auxiliar para verificacao de jogo pausado, pra fazer o som de pausado
     * apenas 1 vez.
     * @return situacao de pause
     */

    public static boolean isPauseSound() {
        return Comandos.pauseSound;
    }

    /**
     * Auxiliar para modificar a situacao de pause.
     * @param pauseSound = variavel auxiliar para eventos de pause.
     */

    public static void setPauseSound(boolean pauseSound) {
        Comandos.pauseSound = pauseSound;
    }

}
